A computer program build system typically includes a compiler that compiles translation units (e.g., source files that have been preprocessed) of a computer program to provide object files and a linker that links the object files in a specified order to provide an executable representation of the computer program. In convention build systems, compilers often have a relatively limited view of the computer program. For instance, compilers traditionally process one translation unit of the computer program at a time, which may limit a speed with which the compiler compiles the computer program.
Precompiled headers may be employed in an effort to increase the speed with which the computer program is compiled. However, in conventional build systems that utilize precompiled headers, source code is compiled up to a point, and the resulting compiled code is persisted in memory as a single block of code. The entire block of code is subsequently extracted as a single block from the memory. Moreover, conventional build systems often impose relatively strict limitations on how precompiled headers may be used.